The worldwide web offers real-time access to large amount of data, enabling enterprises to provide information via widely accessible electronic communications networks in the form of a variety of computer programs. Such enterprises commonly spend a great deal of time and money testing the computer programs they develop in order to ascertain such programs' levels of functionality and performance. In order to test the operation of such computer programs, performance tests are performed to determine a program's behavior under both normal and anticipated peak load conditions, to troubleshoot performance problems, and to provide unit tests on a daily basis to developed modules.
Existing testing methods enable users to prepare testing scripts which include test parameters such as: the amount of networked devices to be used in the test, the actions to be taken by the networked devices through the test, and so on. Then, the test is executed respective of the script and a user device is used to monitor the performance of the system through the actions taken during the test. Upon identification of an event which requires additional testing parameters or tuning of the existing testing parameters, the test is terminated and a new test that includes the new and/or tuned testing parameters is executed. Such prior art solutions are static, as the additional required parameters can only be added upon termination of the originally executed test.
Existing methods for cloud load testing typically involve utilizing a cloud testing service provided by a cloud service vendor to generate web traffic originating from various locations around the world. Such testing often simulates many users in order to test services operating during peak anticipated loads. Some existing cloud load testing solutions are self-service (i.e., a user may implement the test without external services) but lack the ability to provide scalability for larger loads. Other existing solutions can scale for larger loads, but often require the involvement of professional services to run tests and, consequently, such tests may not be easily modified during testing. Such solutions are not as easily customizable to suit a given user's particular needs, especially if the user desires to change parameters during testing.
It would therefore be advantageous to provide a solution that would overcome the deficiencies of the prior art by enabling dynamic and real-time performance testing of networked systems.